/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.foxinline.modelo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import javax.persistence.*;
import javax.validation.constraints.DecimalMin;

/**
 *
 * @author laverson
 */
@Entity
public class EmolumentoItem implements Serializable{

    @Id
    @SequenceGenerator(name = "seq_emolumento_item", sequenceName = "seq_emolumento_item", allocationSize=1 )
    @GeneratedValue(generator = "seq_emolumento_item", strategy = GenerationType.SEQUENCE)
    private Long id;
       
    @Column(scale= 2, precision=19)
    @DecimalMin( value = "0.00", message="Valor não pode ser menor que zero !" )
    private BigDecimal valorInicial;
    
    @Column(scale= 2, precision=19)
    @DecimalMin( value = "0.00", message="Valor não pode ser menor que zero !"  )
    private BigDecimal valorFinal;
    
    @Column(scale= 2, precision=19)
    @DecimalMin( value = "0.00", message="Valor não pode ser menor que zero !"  )
    private BigDecimal valorCartorio;
    
    @Column(scale= 2, precision=19)
    @DecimalMin( value = "0.00", message="Valor não pode ser menor que zero !"  )
    private BigDecimal valorFermojupi;
    
    @Column(scale= 2, precision=19)
    @DecimalMin( value = "0.00", message="Valor não pode ser menor que zero !"  )
    private BigDecimal valorTotal;
    
    private boolean oab;
    
    private boolean status = true;
    
    @OneToOne
    private Ato atoItem;

    public EmolumentoItem() {
    }

    public EmolumentoItem(Long id, BigDecimal valorInicial, BigDecimal valorFinal, BigDecimal valorCartorio, BigDecimal valorFermojupi, BigDecimal valorTotal, boolean oab, boolean status, Ato atoItem, Emolumento emolumento) {
        this.id = id;
        this.valorInicial = valorInicial;
        this.valorFinal = valorFinal;
        this.valorCartorio = valorCartorio;
        this.valorFermojupi = valorFermojupi;
        this.valorTotal = valorTotal;
        this.oab = oab;
        this.status = status;
        this.atoItem = atoItem;
    }

    public Ato getAtoItem() {
        return atoItem;
    }

    public void setAtoItem(Ato atoItem) {
        this.atoItem = atoItem;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public boolean isOab() {
        return oab;
    }

    public void setOab(boolean oab) {
        this.oab = oab;
    }

    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    public BigDecimal getValorCartorio() {
        return valorCartorio;
    }

    public void setValorCartorio(BigDecimal valorCartorio) {
        this.valorCartorio = valorCartorio;
    }

    public BigDecimal getValorFermojupi() {
        return valorFermojupi;
    }

    public void setValorFermojupi(BigDecimal valorFermojupi) {
        this.valorFermojupi = valorFermojupi;
    }

    public BigDecimal getValorFinal() {
        return valorFinal;
    }

    public void setValorFinal(BigDecimal valorFinal) {
        this.valorFinal = valorFinal;
    }

    public BigDecimal getValorInicial() {
        return valorInicial;
    }

    public void setValorInicial(BigDecimal valorInicial) {
        this.valorInicial = valorInicial;
    }

    public BigDecimal getValorTotal() {
        return valorTotal;
    }

    public void setValorTotal(BigDecimal valorTotal) {
        this.valorTotal = valorTotal;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final EmolumentoItem other = (EmolumentoItem) obj;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        if (this.valorInicial != other.valorInicial && (this.valorInicial == null || !this.valorInicial.equals(other.valorInicial))) {
            return false;
        }
        if (this.valorFinal != other.valorFinal && (this.valorFinal == null || !this.valorFinal.equals(other.valorFinal))) {
            return false;
        }
        if (this.valorCartorio != other.valorCartorio && (this.valorCartorio == null || !this.valorCartorio.equals(other.valorCartorio))) {
            return false;
        }
        if (this.valorFermojupi != other.valorFermojupi && (this.valorFermojupi == null || !this.valorFermojupi.equals(other.valorFermojupi))) {
            return false;
        }
        if (this.valorTotal != other.valorTotal && (this.valorTotal == null || !this.valorTotal.equals(other.valorTotal))) {
            return false;
        }
        if (this.oab != other.oab) {
            return false;
        }
        if (this.status != other.status) {
            return false;
        }
        if (this.atoItem != other.atoItem && (this.atoItem == null || !this.atoItem.equals(other.atoItem))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 71 * hash + (this.id != null ? this.id.hashCode() : 0);
        hash = 71 * hash + (this.valorInicial != null ? this.valorInicial.hashCode() : 0);
        hash = 71 * hash + (this.valorFinal != null ? this.valorFinal.hashCode() : 0);
        hash = 71 * hash + (this.valorCartorio != null ? this.valorCartorio.hashCode() : 0);
        hash = 71 * hash + (this.valorFermojupi != null ? this.valorFermojupi.hashCode() : 0);
        hash = 71 * hash + (this.valorTotal != null ? this.valorTotal.hashCode() : 0);
        hash = 71 * hash + (this.oab ? 1 : 0);
        hash = 71 * hash + (this.status ? 1 : 0);
        hash = 71 * hash + (this.atoItem != null ? this.atoItem.hashCode() : 0);
        return hash;
    }

}
